﻿
var Tiangan = "甲乙丙丁戊己庚辛壬癸"
Tiangan = Tiangan.split("")
var Dizhi = "子丑寅卯辰巳午未申酉戌亥"
Dizhi = Dizhi.split("")
function ConverToGanZhi(year) {
    year = eval(year)
    if (year < 0) { year += 1 }
    str = Tiangan[(year - 1984 + 60000) % 10] + Dizhi[(year - 1984 + 60000) % 12]
    return str
}

function CalConv() {
    FIRSTYEAR = 1998;
    LASTYEAR = 2031;
    today = new Date();
    SolarYear = today.getFullYear();
    SolarMonth = today.getMonth() + 1;
    SolarDate = today.getDate();
    Weekday = today.getDay();
    LunarCal = [
    new tagLunarCal(27, 5, 3, 43, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1),
    new tagLunarCal(46, 0, 4, 48, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1), /* 88 */
    new tagLunarCal(35, 0, 5, 53, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1), /* 89 */
    new tagLunarCal(23, 4, 0, 59, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1),
    new tagLunarCal(42, 0, 1, 4, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1),
    new tagLunarCal(31, 0, 2, 9, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0),
    new tagLunarCal(21, 2, 3, 14, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1), /* 93 */
    new tagLunarCal(39, 0, 5, 20, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1),
    new tagLunarCal(28, 7, 6, 25, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1),
    new tagLunarCal(48, 0, 0, 30, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1),
    new tagLunarCal(37, 0, 1, 35, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1), /* 97 */
    new tagLunarCal(25, 5, 3, 41, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1),
    new tagLunarCal(44, 0, 4, 46, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1),
    new tagLunarCal(33, 0, 5, 51, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1),
    new tagLunarCal(22, 4, 6, 56, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0), /* 101 */
    new tagLunarCal(40, 0, 1, 2, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0),
    new tagLunarCal(30, 9, 2, 7, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1),
    new tagLunarCal(49, 0, 3, 12, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1),
    new tagLunarCal(38, 0, 4, 17, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0), /* 105 */
    new tagLunarCal(27, 6, 6, 23, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1),
    new tagLunarCal(46, 0, 0, 28, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0),
    new tagLunarCal(35, 0, 1, 33, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0),
    new tagLunarCal(24, 4, 2, 38, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1), /* 109 */
    new tagLunarCal(42, 0, 4, 44, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1),
    new tagLunarCal(31, 0, 5, 49, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0),
    new tagLunarCal(21, 2, 6, 54, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1),
    new tagLunarCal(40, 0, 0, 59, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1), /* 113 */
    new tagLunarCal(28, 6, 2, 5, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0),
    new tagLunarCal(47, 0, 3, 10, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1),
    new tagLunarCal(36, 0, 4, 15, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1),
    new tagLunarCal(25, 5, 5, 20, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0), /* 117 */
    new tagLunarCal(43, 0, 0, 26, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1),
    new tagLunarCal(32, 0, 1, 31, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0),
    new tagLunarCal(22, 3, 2, 36, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0)];
    /* 民国年月日 */
    SolarCal = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    SolarDays = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365, 396, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366, 397];
    if (SolarYear <= FIRSTYEAR || SolarYear > LASTYEAR) return 1;
    sm = SolarMonth - 1;
    if (sm < 0 || sm > 11) return 2;
    leap = GetLeap(SolarYear);
    if (sm == 1)
        d = leap + 28;
    else
        d = SolarCal[sm];
    if (SolarDate < 1 || SolarDate > d) return 3;
    y = SolarYear - FIRSTYEAR;
    acc = SolarDays[leap * 14 + sm] + SolarDate;
    kc = acc + LunarCal[y].BaseKanChih;
    Kan = kc % 10;
    Chih = kc % 12;
    Age = kc % 60;
    if (Age < 22)
        Age = 22 - Age;
    else
        Age = 82 - Age;
    if (acc <= LunarCal[y].BaseDays) {
        y--;
        LunarYear = SolarYear - 1;
        leap = GetLeap(LunarYear);
        sm += 12;
        acc = SolarDays[leap * 14 + sm] + SolarDate;
    }
    else
        LunarYear = SolarYear;
    l1 = LunarCal[y].BaseDays;
    for (i = 0; i < 13; i++) {
        l2 = l1 + LunarCal[y].MonthDays[i] + 29;
        if (acc <= l2) break;
        l1 = l2;
    }
    LunarMonth = i + 1;
    LunarDate = acc - l1;
    im = LunarCal[y].Intercalation;
    if (im != 0 && LunarMonth > im) {
        LunarMonth--;
        if (LunarMonth == im) LunarMonth = -im;
    }
    if (LunarMonth > 12) LunarMonth -= 12;
    today = new Date();
    function initArray() {
        this.length = initArray.arguments.length
        for (var i = 0; i < this.length; i++)
            this[i + 1] = initArray.arguments[i]
    }
    var d = new initArray("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");


    var months = ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"];
    var days = ["初一", "初二", "初三", "初四", "初五", "初六", "初七", "初八", "初九", "初十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "二十", "廿一", "廿二", "廿三", "廿四", "廿五", "廿六", "廿七", "廿八", "廿九", "三十"];

    var _year = document.getElementById('dtime');
    _year.innerHTML = today.getFullYear() + "年" + (today.getMonth() + 1) + "月" + today.getDate() + "号 " + d[today.getDay() + 1] + "  农历" + months[LunarMonth - 1] + "月" + days[LunarDate - 1];

    return 0;
}
/* 是否有闰年, 0 平年, 1 闰年 */
function GetLeap(year) {
    if (year % 400 == 0)
        return 1;
    else if (year % 100 == 0)
        return 0;
    else if (year % 4 == 0)
        return 1;
    else
        return 0;
}
function tagLunarCal(d, i, w, k, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13) {
    this.BaseDays = d;
    this.Intercalation = i; /* 0代表此年沒有闰月 */
    this.BaseWeekday = w; /* 民国1月1日星期減 1 */
    this.BaseKanChih = k; /* 民国1月1日干支序号减 1 */
    this.MonthDays = [m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13]; /* 此農曆年每月之大小, 0==小月(29日), 1==大月(30日) */
}
function getcookie(name) {
    var cookie_start = document.cookie.indexOf(name);
    var cookie_end = document.cookie.indexOf(";", cookie_start);
    var cookieuser = cookie_start == -1 ? '' : unescape(document.cookie.substring(cookie_start + name.length + 1, (cookie_end > cookie_start ? cookie_end : document.cookie.length)));
    return cookieuser.split("&")[0];
}
var userid = getcookie("userid");


CalConv();

